package com.xrtn.mapper;

import com.xrtn.bean.SysUserInfo;
import com.xrtn.bean.TBookingInfo;
import com.xrtn.bean.TPatientTreatment;
import com.xrtn.page.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface TBookingInfoMapper {
    int deleteByPrimaryKey(Integer bookingId);

    int deleteByUserId(Integer userId);

    int deleteByPatientId(Integer patientId);

    int insert(TBookingInfo record);

    int insertSelective(TBookingInfo record);

    TBookingInfo selectByPrimaryKey(Integer bookingId);

    List<TBookingInfo> selectByMap(Map<String,Object> params);
    List<TBookingInfo> selectByMap2(Map<String,Object> params);

    /**
     * excel导出
     * @param params
     * @return
     */
    List<Map<String,Object>> selectBookingExcelList(Map<String,Object> params);

    /**
     *
     * @param params
     * @return
     */
    List<Map<String,Object>> selectBookingWeekList(Map<String,Object> params);
    /**
     * 查询用户当前最新预约
     * @return
     */
    TBookingInfo selectUserLimit(Integer userId);

    /**
     * 查询所有预约记录  -  后台统计使用
     * @param params
     * @return
     */
    List<TBookingInfo> selectBookingLists(Map<String,Object> params);

    int updateByPrimaryKeySelective(TBookingInfo record);

    int updateByPrimaryKey(TBookingInfo record);
    /**
     * 后台统计到店人数 || 预约单数
     * @return
     */
    Map<String,Object> selectSumCount(Map<String,Object> params);
    /**
     * 查询
     * @param doctorId
     * @param bookingDate
     * @return
     */
    List<TBookingInfo> selectBookingListByDoctorId(@Param("doctorId") Integer doctorId, @Param("bookingDate") String bookingDate);

    /**
     * 后台快速预约查询可预约的技师接口
     * @return
     */
    List<Map<String,Object>> selectDoctorBookingList(Map<String,Object> params);

    /**
     * 后台 - 查询预约列表
     * @param params
     * @return
     */
    List<Map<String,Object>> selectBookingList(Map<String,Object> params);
    /**
     * 后台 - 查询预约列表
     * @param params
     * @return
     */
    List<Map<String,String>> selectBookingPageList(@Param("page") Page page,@Param("params") Map<String,Object> params);
    /**
     * 病人详情 - 查询预约记录
     * @param params
     * @return
     */
    List<Map<String,Object>> selectBookingListByPatientId(Map<String,Object> params);
    /**
     * 病人详情 - 查询预约记录
     * @param params
     * @return
     */
    List<Map<String,Object>> selectBookingPageListByPatientId(@Param("page") Page page,@Param("params") Map<String,Object> params);
    /**
     * 获取预约详情
     * @param params
     * @return
     */
    Map<String, Object> selectBookingInfo(Map<String, Object> params);
    /**
     * 获取预约详情
     * @param params
     * @return
     */
    List<Map<String, Object>> selectFreeDoctor(Map<String, Object> params);

    /**
     * 查询过期预约
     * @return
     */
    List<TBookingInfo> selectOverBooking(Map<String,Object> params);
}